package Configuracion;

import Traductor.Traductor;
import ComandoConfiguracion.ComandoConfiguracionCuenta;
import ComandoConfiguracion.ComandoConfiguracionTarjeta;
import Dominio.Usuario;
import DominioWS.UsuarioWS;
import Excepciones.ACMSoapExcepcion;
import Excepciones.FabricaExcepcionesSoap;
import FabricaComando.FabricaComandoConfiguracion;

public class ModuloConfiguracion implements IModuloConfiguracion{
	
	/**
	 * Se encargara de configurar las cuentas del cliente propias o asociadas
	 * @param usuario
	 * @throws ACMSoapExcepcion
	 */
	public void configuracionCuentasWS(UsuarioWS parametro) throws ACMSoapExcepcion{
		try{
			
			Usuario usuario = Traductor.traductorUsuario( parametro );
			ComandoConfiguracionCuenta comando = 
				FabricaComandoConfiguracion.crearComandoConfiguracionCuenta(usuario);
			comando.ejecutar();
			
		}catch(Exception e){
			throw new FabricaExcepcionesSoap().obtenerExcepcionSoap("Error inesperado", e);
		}
	}
	/**
	 * Se encargara de configurar las tarjetas del cliente propias o asociadas
	 * @param usuario
	 * @throws ACMSoapExcepcion
	 */
	public void configuracionTarjetasWS(UsuarioWS parametro)throws ACMSoapExcepcion{
		try{
			Usuario usuario = Traductor.traductorUsuario( parametro );
			ComandoConfiguracionTarjeta comando = 
				FabricaComandoConfiguracion.crearComandoConfiguracionTarjeta(usuario);
			comando.ejecutar();
			
		}catch(Exception e){
			throw new FabricaExcepcionesSoap().obtenerExcepcionSoap("Error inesperado", e);
		}
	}
	
}
